An Extensible Debugging Architecture Based on a Hybrid Debugging Framework

نویسندگان

  • Ziad A. Al-Sharif
  • Clinton L. Jeffery
  • Robert B. Heckendorn
  • Robert Rinker
  • Gregory W. Donohoe
  • Margrit Von Braun
چکیده

The cost of writing debuggers is very high. Most debuggers are written employing low level operating system and hardware specific code, which is hard to port to new platforms or architectures and to extend with new debugging techniques. Moreover, current debuggers are usually limited in the amount of analysis that they perform and the level of detail that they provide in order to assist with debugging. Most debuggers are well suited for a specific class of bugs. Different bugs call for different debugging techniques, so experimentation is needed in order to develop the features that will someday be widely adopted in debuggers. This dissertation contributes three primary results. First, it introduces an event-driven debugging framework named AlamoDE (Alamo—Debug Enabled). The role of this framework is analogous to an abstraction layer upon which to build debuggers. AlamoDE 1) provides in-process debugging support with simple communication and no intrusion on the buggy program space, 2) enables debugging tools to be written at a high level of abstraction, and 3) facilitates developers of experimental automatic debugging features in a very high level language. AlamoDE supports construction of a variety of user-defined debugging tools that range from classical source-level debuggers to automated and dynamic analysis techniques. Second, this dissertation presents an extensible agent-based debugging architecture named IDEA (Idaho Debugging Extension Architecture). IDEA offers novel debugging techniques that break the rigidness, closeness, and inextensibility of most current debuggers. It provides programmers with the ability to easily implement, test, and combine user-defined debugging agents, and offers a simple dynamic and static extension mechanism. Finally, this dissertation provides a production source-level debugger for the Unicon language named UDB. UDB leverages the classical interactive debugging process with 1) built-in agents employing automatic detection and dynamic analysis techniques, 2) a simple interface to load, unload, enable, and disable separately-compiled dynamically-loaded external debugging agents that work in conjunction with the conventional source-level debugging session and its internal agents, and 3) Dynamic Temporal Assertions (DTA) that assert a sequence of runtime properties. DTAs are introduced for the first time within typical source-level debuggers that targets sequential programs. While IDEA simplifies a source-level debugger’s extensibility and eases its usability, debugging agents add indispensable value with moderate impact on the performance of the debugger. Different agents can work in concert with each other to provide programmers with better understanding of the program’s execution behavior and simplify the process of debugging and hunting for elusive and hard to catch bugs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Kahina: A Hybrid Trace-Based and Chart-Based Debugging System for Grammar Engineering

This paper provides an overview of the debugging framework Kahina, discussing its architecture as well as its application to debugging in different constraint-based grammar engineering environments. The exposition focuses on and motivates the hybrid nature of the system between source-level debugging by means of a tracer and high-level analysis by means of graphical tools.

متن کامل

Architecture of an Extensible Parallel Debugger

The LERP debugger is a design for an ex-tensible debugging tool for a large array processor. It is extensible in addressing debugging in terms of program-mer's abstractions and paradigms. It includes tools to aid the user to be selective in debugging large numbers of processes .

متن کامل

Multi-level Virtual Machine Debugging Using the Java Platform Debugger Architecture

Debugging virtual machines (VMs) presents unique challenges, especially meta-circular VMs, which are written in the same language they implement. Making sense of runtime state for such VMs requires insight and interaction at multiple levels of abstraction simultaneously. For example, debugging a Java VM written in Java requires understanding execution state at the source code, bytecode and mach...

متن کامل

Demonstration of a Domain-Specific Language Debugging Framework

This demonstration presents a debugging framework that targets domain-specific languages (DSLs). The DSL Debugging Framework (DDF) generates debuggers automatically from DSL grammar specifications. The debugging concern is weaved into a base grammar in an aspect-oriented style. DDF was used to generate debuggers for three different types of DSLs (imperative, declarative, and hybrid) that are tr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009